package club.service;

import club.pojo.Pet;
import com.github.pagehelper.PageInfo;

public interface PetService {

    /**
     * 分页查询所有宠物
     *
     * @param pageNum  当前页码
     * @param pageSize 每页显示条数
     * @return 分页后的宠物列表
     */
    PageInfo<Pet> pets(Integer pageNum, Integer pageSize);

    /**
     * 根据ID查找宠物信息
     *
     * @param id 宠物的ID
     * @return 对应ID的宠物信息，若不存在则返回null
     */
    Pet findById(Integer id);

    /**
     * 创建新的宠物
     *
     * @param pet 待创建的宠物对象
     * @return 创建成功后的宠物ID
     */
    Integer create(Pet pet);

    /**
     * 根据宠物类型查询所有宠物并分页显示
     *
     * @param petType  宠物类型，可选，用于筛选特定类型的宠物
     * @param pageNum  当前页码
     * @param pageSize 每页显示条数
     * @return 分页后的宠物列表
     */
    PageInfo<Pet> allPet(String petType, Integer pageNum, Integer pageSize);

    /**
     * 添加新的宠物
     *
     * @param pet 待添加的宠物对象
     * @return 添加操作影响的行数，通常为1
     */
    int add(Pet pet);

    /**
     * 更新宠物信息
     *
     * @param pet 待更新的宠物对象
     * @return 更新操作影响的行数，通常为1
     */
    int update(Pet pet);

    /**
     * 删除指定ID的宠物
     *
     * @param id 待删除宠物的ID
     * @return 删除操作影响的行数，通常为1
     */
    int del(Integer id);
}
